package com.sky.propertyChangeSupport;


import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;

/**
 *  PropertyChangeSupport的使用
 *
 *  当你需要监听对象属性的变化时，可以使用PropertyChangeSupport类来管理监听器，可以在一些关联属性的场合使用。
 *
 *     使用示例，以下为 BetaConfig对象添加了管理属性监听器的权限
 *
 *   假设这个是 tomcat
 * */
public class TomcatBeta implements Serializable {

    private static final long serialVersionUID = 1L;

    private int serverPort = 8012;


    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);


    public void addPropertyChangeListener(final String propertyName,final PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(propertyName, listener);
    }

    public void removePropertyChangeListener(final PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

    public int getServerPort() {
        return serverPort;
    }

    public void setServerPort(int serverPort) {
        //将属性的改变通知给监听，让监听器可以得知此改变
        changeSupport.firePropertyChange("serverPort", this.serverPort, serverPort);
        this.serverPort = serverPort;
    }





}
